﻿Imports System.Drawing
Imports Microsoft.Office.Interop

Public Class Usuario
    Private m_nombre As String
    Private m_primerApellido As String
    Private m_segundoApellido As String
    Private m_tipoIdentificacion As String
    Private m_identificacion As String
    Private m_fechaNacimiento As Date
    Private m_genero As String
    Private m_telefono As String
    Private m_correo As String
    Private m_nombreUsuario As String
    Private m_contrasenna As String
    Private m_fechaIngreso As Date
    Private m_estado As Estado
    Private m_vacaciones As Integer
    Private m_estadoCurriculo As Boolean
    Private m_puesto As Puesto
    Private m_rol As Integer

    ''' <summary>
    ''' Nombre.
    ''' </summary>
    ''' <value>Nombre.</value>
    ''' <returns>Nombre.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property nombre() As String
        Get
            Return m_nombre
        End Get
        Set(ByVal value As String)
            m_nombre = value
        End Set
    End Property

    ''' <summary>
    ''' Primer apellido.
    ''' </summary>
    ''' <value>Primer apellido.</value>
    ''' <returns>Primer apellido.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property primerApellido() As String
        Get
            Return m_primerApellido
        End Get
        Set(ByVal value As String)
            m_primerApellido = value
        End Set
    End Property

    ''' <summary>
    ''' Segundo apellido.
    ''' </summary>
    ''' <value>Segundo apellido.</value>
    ''' <returns>Segundo apellido.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property segundoApellido() As String
        Get
            Return m_segundoApellido
        End Get
        Set(ByVal value As String)
            m_segundoApellido = value
        End Set
    End Property

    ''' <summary>
    ''' Tipo de identificación.
    ''' </summary>
    ''' <value>Tipo de identificación.</value>
    ''' <returns>Tipo de identificación.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property tipoIdentificacion() As String
        Get
            Return m_tipoIdentificacion
        End Get
        Set(ByVal value As String)
            m_tipoIdentificacion = value
        End Set
    End Property

    ''' <summary>
    ''' Número de identificación.
    ''' </summary>
    ''' <value>Número de identificación.</value>
    ''' <returns>Número de identificación.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property identificacion() As String
        Get
            Return m_identificacion
        End Get
        Set(ByVal value As String)
            m_identificacion = value
        End Set
    End Property

    ''' <summary>
    ''' Número de identificación.
    ''' </summary>
    ''' <value>Número de identificación.</value>
    ''' <returns>Número de identificación.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property fechaNacimiento() As Date
        Get
            Return m_fechaNacimiento
        End Get
        Set(ByVal value As Date)
            m_fechaNacimiento = value
        End Set
    End Property

    ''' <summary>
    ''' Género.
    ''' </summary>
    ''' <value>Género.</value>
    ''' <returns>Género.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property genero() As String
        Get
            Return m_genero
        End Get
        Set(ByVal value As String)
            m_genero = value
        End Set
    End Property

    ''' <summary>
    ''' Número de teléfono.
    ''' </summary>
    ''' <value>Número de teléfono.</value>
    ''' <returns>Número de teléfono.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property telefono() As String
        Get
            Return m_telefono
        End Get
        Set(ByVal value As String)
            m_telefono = value
        End Set
    End Property

    ''' <summary>
    ''' Correo electrónico.
    ''' </summary>
    ''' <value>Correo electrónico.</value>
    ''' <returns>Correo electrónico.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property correo() As String
        Get
            Return m_correo
        End Get
        Set(ByVal value As String)
            m_correo = value
        End Set
    End Property

    ''' <summary>
    ''' Nombre de usuario.
    ''' </summary>
    ''' <value>Nombre de usuario.</value>
    ''' <returns>Nombre de usuario.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property nombreUsuario() As String
        Get
            Return m_nombreUsuario
        End Get
        Set(ByVal value As String)
            m_nombreUsuario = value
        End Set
    End Property

    ''' <summary>
    ''' Contraseña.
    ''' </summary>
    ''' <value>Contraseña.</value>
    ''' <returns>Contraseña.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property contrasenna() As String
        Get
            Return m_contrasenna
        End Get
        Set(ByVal value As String)
            m_contrasenna = value
        End Set
    End Property

    ''' <summary>
    ''' Fecha de ingreso.
    ''' </summary>
    ''' <value>Fecha de ingreso.</value>
    ''' <returns>Fecha de ingreso.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property fechaIngreso() As Date
        Get
            Return m_fechaIngreso
        End Get
        Set(ByVal value As Date)
            m_fechaIngreso = value
        End Set
    End Property

    ''' <summary>
    ''' Estado.
    ''' </summary>
    ''' <value>Estado.</value>
    ''' <returns>Estado.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property estado() As Estado
        Get
            Return m_estado
        End Get
        Set(ByVal value As Estado)
            m_estado = value
        End Set
    End Property

    ''' <summary>
    ''' Número de vacaciones utilizadas.
    ''' </summary>
    ''' <value>Número de vacaciones utilizadas.</value>
    ''' <returns>Número de vacaciones utilizadas.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property vacaciones() As Integer
        Get
            Return m_vacaciones
        End Get
        Set(ByVal value As Integer)
            m_vacaciones = value
        End Set
    End Property

    ''' <summary>
    ''' Estado del currículo.
    ''' </summary>
    ''' <value>Estado del currículo.</value>
    ''' <returns>Estado del currículo.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 14/06/2010, Modificado: 14/06/2010</remarks>
    Public Property estadoCurriculo() As Boolean
        Get
            Return m_estadoCurriculo
        End Get
        Set(ByVal value As Boolean)
            m_estadoCurriculo = value
        End Set
    End Property

    ''' <summary>
    ''' Puesto.
    ''' </summary>
    ''' <value>Puesto.</value>
    ''' <returns>Puesto.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 20/06/2010, Modificado: 20/06/2010</remarks>
    Public Property puesto() As Puesto
        Get
            Return m_puesto
        End Get
        Set(ByVal value As Puesto)
            m_puesto = value
        End Set
    End Property

    ''' <summary>
    ''' Código del rol.
    ''' </summary>
    ''' <value>Código del rol.</value>
    ''' <returns>Código del rol.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 23/06/2010, Modificado: 23/06/2010</remarks>
    Public Property rol() As Integer
        Get
            Return m_rol
        End Get
        Set(ByVal value As Integer)
            m_rol = value
        End Set
    End Property

    ''' <summary>
    ''' Número de identificación.
    ''' </summary>
    ''' <returns>Número de identificación.</returns>
    ''' <remarks>Creado por: Elías Baldioceda, Fecha: 18/06/2010, Modificado: 23/06/2010</remarks>
    Public Function toHashtable() As Hashtable
        Dim usuario As New Hashtable

        usuario.Add("nombre", nombre)
        usuario.Add("primerApellido", primerApellido)
        usuario.Add("segundoApellido", segundoApellido)
        usuario.Add("tipoIdentificacion", tipoIdentificacion)
        usuario.Add("identificacion", identificacion)
        usuario.Add("fechaNacimiento", fechaNacimiento)
        usuario.Add("genero", genero)
        usuario.Add("telefono", telefono)
        usuario.Add("correo", correo)
        usuario.Add("nombreUsuario", nombreUsuario)
        usuario.Add("contrasenna", contrasenna)
        usuario.Add("fechaIngreso", fechaIngreso)
        usuario.Add("vacaciones", vacaciones)
        usuario.Add("estadoCurriculo", estadoCurriculo)
        usuario.Add("estado", estado)
        usuario.Add("rol", rol)

        If puesto Is Nothing Then
            usuario.Add("puesto", "Ninguno")
        Else
            usuario.Add("puesto", puesto.nombre)
        End If

        Return usuario
    End Function
End Class